<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<![endif]-->
<title>VIM 中文帮助: 模式的逻辑操作符</title>
<link rel="stylesheet" href="vim-stylesheet.css" type="text/css" />
<link rel="canonical" href="https://yianwillis.github.io/vimcdoc/doc/pi_logipat.html" />
<script type="text/javascript" src="vimcdoc.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<nav id=banner>
<form action=tags.html target="tag_iframe">
  <input type="text" name="tag" id="tag" placeholder="标签搜索">
</form>
<iframe name="tag_iframe" src=""></iframe>
<a href="help.html">帮助总览</a> &middot;
<hr/>
<a href="quickref.html">快速参考</a> &middot;
<a href="index.html">命令索引</a> &middot;
<a href="eval.html#functions">函数列表</a> &middot;
<a href="quickref.html#option-list">选项列表</a> &middot;
<hr/>
<a href="usr_toc.html">用户手册</a> &middot;
<a href="help.html#reference_toc">参考手册</a> &middot;
</nav>

<header>
<h2>pi_logipat</h2>
</header>
<article id=outer>
<section class=inner>
<b class="vimtag"> <a name="pi_logipat.txt">pi_logipat.txt</a> </b>        逻辑模式                                May 01, 2019

                                <code class="vim">译者</code>: Willis

Author:  Charles E. Campbell  &lt;NcampObell@SdrPchip.AorgM-NOSPAM&gt;
Copyright: (c) 2004-2016 by Charles E. Campbell <b class="vimtag"> <a name="logiPat-copyright">logiPat-copyright</a> </b>
           The VIM LICENSE applies to LogiPat.vim and LogiPat.txt
           (see  <a href="uganda.html#copyright">copyright</a> ) except use "LogiPat" instead of "Vim"
           No warranty, express or implied.  Use At-Your-Own-Risk.

</section><hr class="doubleline" /><section class=inner>
<h4>1. 内容                                         <b class="vimtag"> <a name="logiPat">logiPat</a> </b> <b class="vimtag"> <a name="logiPat-contents">logiPat-contents</a> </b></h4>
        1. 内容.....................:  <a href="pi_logipat.html#logiPat-contents">logiPat-contents</a> 
        2. LogiPat 手册.............:  <a href="pi_logipat.html#logiPat-manual">logiPat-manual</a> 
        3. LogiPat 示例.............:  <a href="pi_logipat.html#logiPat-examples">logiPat-examples</a> 
        4. <code class="note">警告</code>.....................:  <a href="pi_logipat.html#logiPat-caveat">logiPat-caveat</a> 
        5. LogiPat 历史.............:  <a href="pi_logipat.html#logiPat-history">logiPat-history</a> 


</section><hr class="doubleline" /><section class=inner>
<h4>2. LogiPat 手册                         <b class="vimtag"> <a name="logiPat-manual">logiPat-manual</a> </b> <b class="vimtag"> <a name="logiPat-man">logiPat-man</a> </b></h4>
        <b class="vimtag"> <a name="logiPat-arg">logiPat-arg</a> </b> <b class="vimtag"> <a name="logiPat-input">logiPat-input</a> </b> <b class="vimtag"> <a name="logiPat-pattern">logiPat-pattern</a> </b> <b class="vimtag"> <a name="logiPat-operators">logiPat-operators</a> </b>
        布尔逻辑模式的组成是

                        operators  ! = 非
                                   | = 逻辑或
                                   &amp; = 逻辑与
                        grouping   ( ... )
                        patterns   "pattern"

        <b class="vimtag"> <a name="logiPat-cmd">logiPat-cmd</a> </b>
        :LogiPat <code class="special">{布尔逻辑模式}</code>                         <b class="vimtag"> <a name=":LogiPat">:LogiPat</a> </b>
                :LogiPat 是一个接受布尔逻辑参数的命令 ( <a href="pi_logipat.html#logiPat-arg">logiPat-arg</a> )。

        :LP <code class="special">{布尔逻辑模式}</code>                              <b class="vimtag"> <a name=":LP">:LP</a> </b>
                :LP 是 :LogiPat ( <a href="pi_logipat.html#logiPat-cmd">logiPat-cmd</a> ) 的简写命令版本。

        :LPE <code class="special">{布尔逻辑模式}</code>                             <b class="vimtag"> <a name=":LPE">:LPE</a> </b>
                不执行搜索，但进行布尔逻辑模式到正则表达式的转换，并在屏幕上回
                显。

        :LogiPatFlags <code class="special">{搜索标志位}</code>                      <b class="vimtag"> <a name="LogiPat-flags">LogiPat-flags</a> </b>
                LogiPat 使用  <a href="builtin.html#search()">search()</a>  命令。:LogiPatFlags 命令可用来指定传递
                给 search() 调用的标志位。

        :LPF <code class="special">{搜索标志位}</code>                               <b class="vimtag"> <a name=":LPF">:LPF</a> </b>
                :LPF 是 :LogiPatFlags 的简写版本。

        :let pat=LogiPat(<code class="special">{布尔逻辑模式}</code>)                <b class="vimtag"> <a name="LogiPat()">LogiPat()</a> </b>
                如果直接调用 LogiPat()，不执行搜索，但进行布尔逻辑模式到正则表
                达式的转换并返回之。

        要在模式里指定 " 而不是用作模式的定界，给双引号加倍。


</section><hr class="doubleline" /><section class=inner>
<h4>3. LogiPat 示例                                         <b class="vimtag"> <a name="logiPat-examples">logiPat-examples</a> </b></h4>
        LogiPat 接受布尔逻辑参数，产生正则表达式来实现选择。下面提供一系列的例
        子 :

<code class="example">        :LogiPat "abc"</code>
                会搜索包含字符串 :abc: 的行

<code class="example">        :LogiPat "ab""cd"</code>
                会搜索包含字符串 :ab"cd: 的行

<code class="example">        :LogiPat !"abc"</code>
                会搜索不包含字符串 :abc: 的行

<code class="example">        :LogiPat "abc"|"def"</code>
                会搜索包含字符串 :abc: 或 :def: 的行

<code class="example">        :LogiPat !("abc"|"def")</code>
                会搜索既不包含字符串 :abc: 也不包含 :def: 的行

<code class="example">        :LogiPat "abc"&amp;"def"</code>
                会搜索同时包含字符串 :abc: 和 :def: 的行

<code class="example">        :let pat= LogiPat('!"abc"')</code>
                会返回正则表达式，可用来匹配所有不包含 :abc: 的行。双倍的引号
                是必要的，它可以把正常的匹配传递给 LogiPat，并把这种模式和布尔
                逻辑的操作符区别开来。


</section><hr class="doubleline" /><section class=inner>
<h4>4. <code class="note">警告</code>                                                 <b class="vimtag"> <a name="logiPat-caveat">logiPat-caveat</a> </b></h4>
         "not" 操作符可能比较脆弱；也就是，它并不总是能和 &amp; (逻辑与) 和 | (逻
         辑或) 操作符合作得很好。请先试试你的模式，可能的话用 :set hls，以确保
         匹配符合你的期望。


</section><hr class="doubleline" /><section class=inner>
<h4>5. LogiPat 历史 (英文)                                  <b class="vimtag"> <a name="logiPat-history">logiPat-history</a> </b></h4>
        v4 Jun 22, 2015 * LogiPat has been picked up by Bram M for standard
                          plugin distribution; hence the name change
        v3 Sep 25, 2006 * LP_Or() fixed; it now encapsulates its output
                          in \%(...\) parentheses
           Dec 12, 2011 *  <a href="pi_logipat.html#:LPE">:LPE</a>  added
                        * "" is mapped to a single " and left inside patterns
        v2 May 31, 2005 * LPF and LogiPatFlags commands weren't working
        v1 May 23, 2005 * initial release


</section><hr class="doubleline" /><section class=inner>
<h4>vim:tw=78:ts=8:noet:ft=help</h4></section>
</article>
<footer>
Generated by vim2html
</footer>
</body>
</html>
